Digital signal processing is well known and is used in a variety of products. A general purpose computer chip, commonly called a CPU (an acronym for “Central Processing Unit”) may be configured to operate on data representative of a “signal” and those operations may correspond to meaningful operation upon that signal, such as, for example, to find the maximum excursion of that signal, or to find the maximum frequency component present in that signal. The word “signal” is used to indicate that the data represent a continuously varying parameter, such as a sound pressure or image brightness or other parameter that varies with time. Data representing the height of trees growing in a parkland is not a signal in this sense—it has no variation with time, it represents a snapshot of a particular height of the trees.
Some meaningful operations on signals are computationally expensive—many primitive operations are needed to complete the operation on the data. Fourier analysis (decomposition into frequency components) is one such example. For this reason special purpose processing elements have been designed—these are CPUs that are specialized to process data representing a signal and include hardware to simplify or optimize what would otherwise be time consuming operations on a general purpose CPU. Such specialized CPU's are referred to as DSP's an acronym for Digital Signal Processor.
In the detailed operation of a DSP device we may identify a further distinction: those DSP's devices that operate continuously and those that operate in a batch mode. For example, in performing a common operation called Fast Fourier Transform (FFT) a section of the digital signal is taken into an input buffer—a temporary store of a number of signal samples. An operation, typically of many steps, then proceeds to operate upon the section of the data present in the input buffer, finally creating a second collection of data elements that can be considered an output buffer of data now representing the frequency decomposition of the signal data present in the input buffer. Thus, this DSP has completed an operation in a batch mode—it is only necessary that the batch operation upon the input buffer be compete before a second input buffer has filled—the faster that the batch operation proceeds the better, since the DSP processor then has time to complete other potentially useful operations. Contrast this FFT example of a batch mode operation with the operation of a Finite Impulse Response (FIR) filter. This is a signal processing method well know in the art, where a weighted summation of the input signal over a period of time is created to represent an output signal. The output signal has a lower frequency variation than the input. For example, a weigh scale in a supermarket checkout may be a source of a digital data signal. It may output a digital number representing the weight on the pan at a rate of 100 samples (measurements) per second. If these digital numbers were displayed they would flicker at up to 100 times a second since the measurement returned is not identical to the 1/10 of a gram each time. This would be disconcerting and it is desirable to present a number to the customer that is stable, free from flicker. To accomplish this, a FIR filter may be used. The FIR filter takes the last 10 measurements and sums them, then presents to the display 1/10th of the sum. Each time a new number is available from the input digital signal the old number, taken ten samples ago, is lost and the new sample is added. Therefore, a new output of 1/10th the sum of the last 10 inputs is available 100-times a second and this new output data has fewer flickers, less variation, since it is the average of the last 10 results.
This weigh scale FIR example shows a second and distinct mode of operation from the FFT example: specifically, the weigh scale FIR operates continually, it does not operate in batch mode. It is useful to note that it accepts a stream of input data samples and creates a stream of output data samples. Significantly, there is no difference in operation at each presentation of new data—there is no “control state” in the operation of the FIR. There is significant “control state” in the operation of the FFT. The presence of a complex control state may be taken to distinguish a Stream Signal Processor (SSP) from a more generic DSP: the SSP is executing the identical operation (or operations) per new input data sample, the non-stream processing DSP is executing a complex sequence of operations, possibly not even at the rate of new input data. In the known art the generic non-stream processing DSP has a “program counter”. This is a state variable indicating where the machine operation is at this time in the “program”. This known art program counter is an example of the more fundamental concept of a “control state” and it is the absence of a control state that distinguishes a Stream Signal Processor.
Many circuits exist for processing digital signals in a variety of products, including audio products, video products, personal computers and many useful products. Central processing units (CPUs) are one example. CPUs, much like those used in personal computers and other applications, can be configured to process digital signals. In audio applications, however, cost and size are principal factors. CPUs demand a high cost, and consume relatively high power for audio applications.
Digital signal processors (DSPs), are an example of a more specialized, optimized and cost effective alternative to CPUs, as they are configured to process digital signals in particular. The DSPs still perform instruction decoding, interrupt logic operations, and other operations required of a CPU, but more specialized and optimized. DSPs, however, are still expensive relative to the cost of modern audio products. Like CPUs, DSPs require random access memory (RAM), read-only memory (ROM) and any associated support components. DSPs are more favorable to CPUs because DSPs optimize the CPU components, are less expensive, and consume less power. The competition in audio products are so great, that further refinement and optimization are required to further improve audio products and make their components and, thus, the final product more cost effective and consume less power.
Therefore, there exists a need for a further refined and improved alternative to CPUs and DSPs to make audio products less expensive, require less power, and yet still be functionally feasible. As described below, the invention provides a novel and elegant alternative.